AWS Control Towerランディングゾーンセットアップ中にCloudFormationスタック(AWSControlTowerBP-BASELINE-CLOUDTRAIL-MASTER)の作成に失敗したときの原因と対応方法
Control Tower有効化時に以下のエラーメッセージが出て、セットアップに失敗しました。
原因の一例と対応内容を紹介します。
AWS Control Tower はランディングゾーンを完全に設定できませんでした。AWS Control Tower is unable to update stack arn:aws:cloudformation:ap-northeast-1:XXXXXXXX:stack/AWSControlTowerBP-BASELINE-CLOUDTRAIL-MASTER/1508e7a0-18bf-11ef-a436-0a2fece3bfa7 because the stack is in a failed state.To continue, review the stack and try again.
Resource handler returned message: "Invalid request provided: Insufficient permissions to access S3 bucket aws-controltower-logs-XXXXXXXX-ap-northeast-1 or KMS key arn:aws:kms:ap-northeast-1:XXXXXXXX:key/YYYYYYYYY. (Service: CloudTrail, Status Code: 400, Request ID: a0426a95-7c24-4dc0-8298-397daa6aa482)" (RequestToken: a42b51d5-8c1c-17da-630b-a1c9fcea26ef, HandlerErrorCode: InvalidRequest)
結論
- 指定したKMSキーポリシーの許可が不足していた
- AWS Config と CloudTrail が暗号化に AWS KMS を使用できるようにするポリシーステートメントを追加した
原因と対応
前提
- Control Tower有効化時にKMS暗号化を有効
Control Towerでは、任意でKMSを使ってリソースを暗号化(CloudTrailやAWS Config)することができます。
今回はこちらの設定を有効化しました。
原因
- KMSキーポリシーの許可が不足していた
Control Towerで利用できるKMSキーには以下の条件があります。
- 有効
- 対称
- マルチリージョンキーではない
- ポリシーに正しい許可が追加されている
- キーが管理アカウントにある
AWS KMS keysの設定 (任意) - AWS Control Towerから引用
今回は、「ポリシーに正しい許可が追加されている」の部分が満たせていませんでした。
Control Towerで実行されるCloudFormationにて、CloudTrailが作成されます。
このCloudTrailにも今回のKMSが指定されます。しかし、KMSキーポリシーでCloudTrailのアクセスを許可していません。
CloudTrailのリソース作成に失敗し、Control Towerのセットアップに失敗しました。
対応
- KMSキーポリシーにCloudTrailとAWS Configの許可を追加した
以下ドキュメントの通り、KMSキーポリシーを追加しました。
KMS キーポリシーを更新する |オプションで AWS KMS キーを設定する - AWS Control Tower
「AWSマネジメントコンソール」 -> 「KMS」 -> 「カスタマー管理型のキー」 -> [該当のキー]を選択します。
「キーポリシー」 -> 「編集」を選択して、ポリシーを追加します。
再試行してもCloudFormationスタックが作り直されなかったため、一度スタックを削除します。
「AWSマネジメントコンソール」 -> 「CloudFormation」 -> 「スタック」 -> 「AWSControlTowerBP-BASELINE-CLOUDTRAIL-MASTER」 -> 「削除」を選択します。
その後、Control Towerのコンソールから「再試行」を実行します。
セットアップ完了までしばらく待つと、「お客様のランディングゾーンが利用できるようになりました。」のメッセージが確認できました。
おわりに
KMSキーポリシー不足で、Control Towerのセットアップに失敗する件についてでした。
今回はセットアップ時にKMSキーを指定しましたが、セットアップ済みの環境にKMSキーを追加する場合は以下もご確認ください。
以上、AWS事業本部の佐藤(@chari7311)でした。